#define _CRT_SECURE_NO_WARNINGS
#include"Stack.h"

//void STTest1()
//{
//	Stack s1;
//	STInit(&s1);
//	STPush(&s1, 1);
//	STPush(&s1, 2);
//	STPush(&s1, 3);
//	STPush(&s1, 4);
//	STPush(&s1, 5);
//
//
//	int top = STTop(&s1);
//	printf("%d ", top);
//	STPop(&s1);
//
//	int sz = STSize(&s1);
//	for (int i = 0; i < sz; i++)
//	{
//		top = STTop(&s1);
//		printf("%d ", top);
//		STPop(&s1);
//	}
//
//	STDestroy(&s1);
//}
//


bool isValid(char* s) {
    Stack s1;
    STInit(&s1);

    while (*s)
    {
        if (*s == '(' || *s == '[' || *s == '{')
        {
            STPush(&s1, *s);
        }
        else
        {
            if (STEmpty(&s1))
            {
                STDestroy(&s1);
                return false;
            }

            char tmp = STTop(&s1);
            STPop(&s1);
            if (tmp != *s)
            {
                return false;
            }

        }
        s++;
    }
    if (!STEmpty(&s1))
    {
        STDestroy(&s1);
        return false;
    }
    STDestroy(&s1);
    return true;
}


int main()
{
    char* arr = "()";
    isValid(arr);
	return 0;
}